2003年10月05日
川俣晶の縁側ソフトウェアりすと亭開発日誌 total 2495 count

特殊な文字を含む電子メールアドレスを登録した場合の問題

Written By: 川俣 晶連絡先

 今日はいきなりバグレポートでてんやわんや、という感じでした。(日曜日なのに!)

 具体的には、ファイル名に特別な文字を含む電子メールアドレスが登録されると、そのメンバーの情報にアクセスする際に例外が起きて処理が中断されてしまう問題が明らかになったのです。

 りすと亭では、電子メールアドレスをファイル名として、メンバーの情報をファイルに記録します。これは、電子メールアドレスの一覧を得るだけなら、ディレクトリ一覧を取得するだけで終わるという一種の最適化のための仕様です。その際、ファイル名に使用できない文字があると、その文字は特別なエンコードを施すような仕様になっていました。これで問題なくファイルに保存できるはずでしたが、実際は違いました。

 問題の技術的な詳細は、「.NET FrameworkのXML DOMで、Saveメソッドに指定したファイル名をLoadメソッドに指定できない罠 ( https://mag.autumn.org/Content.aspx?id=20031005131739 )」で書きました。

 つまり、特別な文字をエンコードすることとは全く別の問題により、正常な動作が阻害されていたわけです。

 実はこのようなクラスライブラリの挙動については既に気付いていました。しかし、気付いていたのに、つい頭の中から抜けてしまうことが多いのが困りものです。

 とりあえず、今回の件は、テスト駆動バグ取りで取ってあるので、全く同じバグが再発することは無いでしょう。しかし、同じ原因に起因する別のバグが無いとも言い切れません。一応チェックは入れてありますが、インストール時に標準ではないディレクトリ名を指定して使うことは避けた方が安全かもしれません。もちろん、半角英数字からなるディレクトリ名なら安全です。問題があるとすれば、%などの記号関係です。

 というわけで、この問題を解消したりすと亭4.03.0を緊急リリースしました。